package projet.tache;

/**
 * Classe representant une tache periodique
 * @author Aida Tapsoba
 * @author Nicolas Proust
 * @author Celine Barillere
 */

public class TachePeriodique extends Tache implements Comparable<Object> {

	/** Le parametre Pi de la tache */
	private int p = 0;
	/** Le parametre Di de la tache */
	private int d = 0;
	
	/**
	 * Constructeur
	 * @param nom le nom de la tache
	 * @param c le parametre Ci de la tache
	 * @param p le parametre Pi de la tache
	 * @param d le parametre Di de la tache
	 */
	public TachePeriodique(String nom, int c, int p, int d) {
		super(nom, c);
		this.p = p;
		this.d = d;	
	}

	/**
	 * @return le parametre Pi
	 */
	public int getP() {
		return p;
	}

	/**
	 * @param p le parametre Pi
	 */
	public void setP(int p) {
		this.p = p;
	}

	/**
	 * @return le parametre Di
	 */
	public int getD() {
		return d;
	}

	/**
	 * @param d le parametre Di
	 */
	public void setD(int d) {
		this.d = d;
	}

	@Override
	public String toString() {
		return super.getNom() + "(" + super.getC() + "," + this.getP() + "," + this.getD() + ")";
	}

	/**
	 * Permet de comparer les Di de deux taches
	 */
	@Override
	public int compareTo(Object o) {
		if (o instanceof TachePeriodique) {
			return this.d - ((TachePeriodique) o).d;
		}
		return Integer.MAX_VALUE;
	}
}
